﻿using System;
using System.Collections.Generic;
using System.IO;            // 引入文件操作 IO流
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace basicStudy
{
    /*
     系统学习：
        Lesson1: 变量介绍、类型转换
        Lesson2: 异常try...catch...       运算符、位运算、字符串拼接、条件语句、循环语句
        Lesson3: 枚举、结构体、数组介绍、交错数组、二维数组
        Lesson4: 函数、递归、循环排序
        Lesson5: 类介绍、构造函数和析构函数、自动属性、索引器
        Lesson6: 静态   静态成员、静态类、静态方法（函数）、运算符重载、内部类、分部类
        Lesson7: 继承  里氏替换原则、万物之父（object）、密封类
        Lesson8: 多态  虚函数、抽象类和抽象方法、接口、密封方法
        Lesson9: 命名空间
        Lesson10: 万物之父中的方法、String中的方法、结构体和类的区别、抽象类和接口的区别
        Lesson11: 数据结构：ArrayList、Stack、Queue、Hashtable  泛型、泛型约束、泛型数据结构: List<>、Dictionary<,>、Stack<>、Queue<>  链表: LinkedList<>
        Lesson12: 委托、事件、匿名函数、lambda表达式
        Lesson13: List排序、IComparable接口
        Lesson14: 逆变/协变   in/out
        Lesson15: 多线程、窗口程序
        Lesson16: 预处理器指令
        Lesson17: 程序集、反射、元数据、程序集类（Assembly）、类库文件
        Lesson18: 特性
        Lesson19: 迭代器、 yield return
        Lesson20: 特殊语法：var、（对象、集合）初始值、匿名类型、可空类型（?）、空合并操作符（??） 、内插字符串、单句省略写法
        Lesson21: 程序逻辑
        Lesson22: IO: File、Stream  ...
     */


    internal class Program
    {
        // 函数方法  入口点
        static void Main(string[] args)
        {
            // 按行输出
            Console.WriteLine("hello world");
            Console.WriteLine("hello world");
            // 不会换行
            Console.Write("hello world");
            Console.Write("hello world");

            // 变量
            // 变量类型  变量的名称 = 初始值
            // var是语法糖，会自动推导变量类型
            //var a = 100;
            //var b = 200;
            //var sum = 0;

            //sum = a + b;

            // .NET 提供好多方法，输出方法是 WriteLine, 但是在 System-->Console结构下的方法，System在上面用using  引入了
            //Console.WriteLine(sum);

            //VarTest01 var1 = new VarTest01();
            //Console.WriteLine(VarTest01.Test());


            //Console.ReadKey();   // 相当于等待用户输入

            //Console.WriteLine("请输入一个数字");   // 用户输入


            //Console.ReadLine();  // 读取用户输入的内容


            //Console.ReadKey();      // 窗口暂停

            //List<string> list = new List<string>();

            //// 增加
            //list.Add("A");
            //list.Add("B");
            //list.Add("C");

            //// 读取
            //Console.WriteLine(list[2]);

            //Console.WriteLine(list.Count);

            //// 删除
            //list.RemoveAt(1);   // 根据索引删除


            //Console.WriteLine(list.Count);

            //foreach (string s in list) {
            //    Console.WriteLine(s);
            //}

            //Console.ReadLine();  

            //Console.ReadKey();

            // 使用类库创建项目，最后是生成.dll文件，是一个链接库，不能运行，要使用里面的属性、方法，就需要添加引用


            // 操作文件
            string path = "C:\\Users\\admin\\Desktop";

            //string path = @"C:\Users\admin\Desktop";

            DirectoryInfo dir = new DirectoryInfo(path);

            FileInfo[] files = dir.GetFiles();        // 获取所有文件
            List<FileInfo> lstFiles = files.ToList();

            for (int i = 0; i < lstFiles.Count; i++)
            {
                Console.WriteLine(lstFiles[i].FullName);   // 全路径名称
                Console.WriteLine(lstFiles[i].Name);
            }

            Console.ReadKey();
        }
    }

    class VarTest01
    {
        public static int Test()
        {
            int a = 100;
            int b = 200;
            int sum = a + b;
            return sum;
        }
    }
}
